摘要 :
We present a technique to automatically generate search heuristics for concolic testing. A key challenge in concolic testing is how to effectively explore the program's execution paths to achieve high code coverage in a limited ti...
展开
We present a technique to automatically generate search heuristics for concolic testing. A key challenge in concolic testing is how to effectively explore the program's execution paths to achieve high code coverage in a limited time budget. Concolic testing employs a search heuristic to address this challenge, which favors exploring particular types of paths that are most likely to maximize the final coverage. However, manually designing a good search heuristic is nontrivial and typically ends up with suboptimal and unstable outcomes. The goal of this paper is to overcome this shortcoming of concolic testing by automatically generating search heuristics. We define a class of search heuristics, namely a parameterized heuristic, and present an algorithm that efficiently finds an optimal heuristic for each subject program. Experimental results with open-source C programs show that our technique successfully generates search heuristics that significantly outperform existing manually-crafted heuristics in terms of branch coverage and bug-finding.
收起
摘要 :
We present a technique to automatically generate search heuristics for concolic testing. A key challenge in concolic testing is how to effectively explore the program's execution paths to achieve high code coverage in a limited ti...
展开
We present a technique to automatically generate search heuristics for concolic testing. A key challenge in concolic testing is how to effectively explore the program's execution paths to achieve high code coverage in a limited time budget. Concolic testing employs a search heuristic to address this challenge, which favors exploring particular types of paths that are most likely to maximize the final coverage. However, manually designing a good search heuristic is nontrivial and typically ends up with suboptimal and unstable outcomes. The goal of this paper is to overcome this shortcoming of concolic testing by automatically generating search heuristics. We define a class of search heuristics, namely a parameterized heuristic, and present an algorithm that efficiently finds an optimal heuristic for each subject program. Experimental results with open-source C programs show that our technique successfully generates search heuristics that significantly outperform existing manually-crafted heuristics in terms of branch coverage and bug-finding.
收起
摘要 :
With the increasing complexity of software system, the cost of software maintenance is increasing. In this case, software reliability is difficult to guarantee. To address this problem, software defect prediction technology based ...
展开
With the increasing complexity of software system, the cost of software maintenance is increasing. In this case, software reliability is difficult to guarantee. To address this problem, software defect prediction technology based on machine learning has been attached great importance by a large number of scholars. Because of the strong interpretability of association rules, association rule algorithms are often used in classification tasks. However, the class imbalance problem seriously impacts the performance of traditional software defect classifiers based on association rule mining, therefore, it is necessary to use association rule algorithm that can be used to handle class imbalance data to deal with this problem. In this paper, a software defect prediction classifier based on three minimum support threshold association rule mining is proposed, which aims to improve the quality of these three frequent item-sets by considering the support of frequent item-sets containing defect labels, including non-defect labels and only including software metrics. The algorithm is compared with other four machine learning algorithms, and the results show that the algorithm is effective.
收起
摘要 :
Filling missing data is crucial to preprocessing data. Missing data reduces the accuracy of statistics, causes statistical errors. Traditional methods for dealing with missing data include simple deletion, mean filling, or simply ...
展开
Filling missing data is crucial to preprocessing data. Missing data reduces the accuracy of statistics, causes statistical errors. Traditional methods for dealing with missing data include simple deletion, mean filling, or simply ignoring missing values. However, these methods have limitations in accuracy and computational feasibility. Therefore, it is essential to select a effective method to fill missing data. In this paper, we propose a method based on Fuzzy c-means clustering algorithm, Dynamic division of connected graph algorithm and Association Rules named FDAR to fill missing data. First, we use Fuzzy c-means clustering (FCM) and Dynamic division of connected graph (CABDDCG) algorithm to cluster, and then mine association rules (AR) in each part of cluster. Next, if there are association rules, the association rules are filled; Otherwise, the nearest first
$k$
values in the same cluster are used to fill. Experiments show FDAR algorithm in filling missing data has high accuracy on six UCI datasets.
收起
摘要 :
Modern systems often have complex configuration spaces. Research has shown that people often just use default settings. This practice leaves significant performance potential unrealized. In this work, we propose an approach that u...
展开
Modern systems often have complex configuration spaces. Research has shown that people often just use default settings. This practice leaves significant performance potential unrealized. In this work, we propose an approach that uses metaheuristic search algorithms to explore the configuration space of Hadoop for high-performing configurations. We present results of a set of experiments to show that our approach can find configurations that perform significantly better than defaults. We tested two metaheuristic search algorithms—coordinate descent and genetic algorithms—for three common MapReduce programs—Wordcount, Sort, and Terasort—for a total of six experiments. Our results suggest that metaheuristic search can find configurations cost-effectively that perform significantly better than baseline default configurations.
收起
摘要 :
Modern systems often have complex configuration spaces. Research has shown that people often just use default settings. This practice leaves significant performance potential unrealized. In this work, we propose an approach that u...
展开
Modern systems often have complex configuration spaces. Research has shown that people often just use default settings. This practice leaves significant performance potential unrealized. In this work, we propose an approach that uses metaheuristic search algorithms to explore the configuration space of Hadoop for high-performing configurations. We present results of a set of experiments to show that our approach can find configurations that perform significantly better than defaults. We tested two metaheuristic search algorithms—coordinate descent and genetic algorithms—for three common MapReduce programs—Wordcount, Sort, and Terasort—for a total of six experiments. Our results suggest that metaheuristic search can find configurations cost-effectively that perform significantly better than baseline default configurations.
收起
摘要 :
Combinatorial testing aims at covering the interactions of parameters in a system under test, while some combinations may be forbidden by given constraints (forbidden tuples). In this paper, we illustrate that such forbidden tuple...
展开
Combinatorial testing aims at covering the interactions of parameters in a system under test, while some combinations may be forbidden by given constraints (forbidden tuples). In this paper, we illustrate that such forbidden tuples correspond to unsatisfiable cores, a widely understood notion in the SAT solving community. Based on this observation, we propose a technique to detect forbidden tuples lazily during a greedy test case generation, which significantly reduces the number of required SAT solving calls. We further reduce the amount of time spent in SAT solving by essentially ignoring constraints while constructing each test case, but then “amending” it to obtain a test case that satisfies the constraints, again using unsatisfiable cores. Finally, to complement a disturbance due to ignoring constraints, we implement an efficient approximative SAT checking function in the SAT solver Lingeling. Through experiments we verify that our approach significantly improves the efficiency of constraint handling in our greedy combinatorial testing algorithm.
收起
摘要 :
Combinatorial testing aims at covering the interactions of parameters in a system under test, while some combinations may be forbidden by given constraints (forbidden tuples). In this paper, we illustrate that such forbidden tuple...
展开
Combinatorial testing aims at covering the interactions of parameters in a system under test, while some combinations may be forbidden by given constraints (forbidden tuples). In this paper, we illustrate that such forbidden tuples correspond to unsatisfiable cores, a widely understood notion in the SAT solving community. Based on this observation, we propose a technique to detect forbidden tuples lazily during a greedy test case generation, which significantly reduces the number of required SAT solving calls. We further reduce the amount of time spent in SAT solving by essentially ignoring constraints while constructing each test case, but then “amending” it to obtain a test case that satisfies the constraints, again using unsatisfiable cores. Finally, to complement a disturbance due to ignoring constraints, we implement an efficient approximative SAT checking function in the SAT solver Lingeling. Through experiments we verify that our approach significantly improves the efficiency of constraint handling in our greedy combinatorial testing algorithm.
收起
摘要 :
Software testing is one of the most essential and an indispensable part of Software production life cycle. Software testing helps in validating if the product meets with the requirements or not, and also testing helps to validate ...
展开
Software testing is one of the most essential and an indispensable part of Software production life cycle. Software testing helps in validating if the product meets with the requirements or not, and also testing helps to validate the performance of the product. Unfortunately, this process takes up about 50% of the production time and budget, due to its laboriosity. Hence, in order to reduce the time it takes, Automated Software Testing becomes essential. Here we propose a novel idea of using Machine Learning for automatically generating the test suites. In this paper we present an approach that uses NEAT (Neuroevolution of Augmenting Topologies) Algorithm to automatically generate new test suites or for improving the coverage of already produced test suite. Our approach automatically generates test suites for white box testing. White box testing refers to testing of the internal structure and the working of the Software Under Test.
收起
摘要 :
Software testing is one of the most essential and an indispensable part of Software production life cycle. Software testing helps in validating if the product meets with the requirements or not, and also testing helps to validate ...
展开
Software testing is one of the most essential and an indispensable part of Software production life cycle. Software testing helps in validating if the product meets with the requirements or not, and also testing helps to validate the performance of the product. Unfortunately, this process takes up about 50% of the production time and budget, due to its laboriosity. Hence, in order to reduce the time it takes, Automated Software Testing becomes essential. Here we propose a novel idea of using Machine Learning for automatically generating the test suites. In this paper we present an approach that uses NEAT (Neuroevolution of Augmenting Topologies) Algorithm to automatically generate new test suites or for improving the coverage of already produced test suite. Our approach automatically generates test suites for white box testing. White box testing refers to testing of the internal structure and the working of the Software Under Test.
收起